package simulator;

import java.util.Vector;

/**
 * Listener udalosti rozhodovaci strategie.
 * 
 * @author Petr Altman
 *
 */
public interface DecisionStrategyListener {

	/**
	 * Udalost rozhodnuti se pro vyslani noveho nakladniho vozu pro splneni dane objednavky.
	 * @param order Zpracovavana objednavka.
	 * @param path Cesta nalezena pro vyrizeni objednavky.
	 */
	public void onDecisionNewTruck(Order order, TruckPath path);
	
	/**
	 * Udalost rozhodnuti se pro prirazeni objednavky existujicimu nakladnimu vozidlu. 
	 * @param order Zpracovavana objednavka.
	 * @param truck Nakladak, ktery ma byt pouzit pro vyrizeni objednavky.
	 * @param paths Nova trasa nakladaku.
	 */
	public void onDecisionUseTruck(Order order, Truck truck, Vector<TruckPath> paths);
	
	/**
	 * Udalost rozhodnuti se pro odmitnuti objednavky.
	 * @param order Odmitnuta objednavka.
	 */
	public void onDecisionRefuseOrder(Order order);
	
}
